<?php

namespace app\api\controller;

use think\Db;

class Notify extends ApiBase
{
	
	protected $datas;


	/**
	 * 微信通知接口
	 * @Author   Yichen
	 * @DateTime 2020-05-04T21:15:31+0800
	 * @return   [type]                   [description]
	 */
	public function wxNotify()
	{
		//获取微信返回的参数
        $xml = file_get_contents('php://input');
        //转化为json格式
        $json = json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA));
        //转化为字数组
        $data = json_decode($json, true);
        //获取签名
        $old_sign = $data['sign'];
        unset($data['sign']);
        $mchid = '';          //微信支付商户号 PartnerID 通过微信支付商户资料审核后邮件发送
        $appid = '';  //公众号APPID 通过微信支付商户资料审核后邮件发送
        $apiKey = '';   //https://pay.weixin.qq.com 帐户设置-安全设置-API安全-API密钥-设置API密钥
        $wxPay = new \WxpayService($mchid, $appid, $apiKey);
        $sign = $wxPay->getSign($data, $apiKey);
        //判断签名和支付结果
        if ($old_sign == $sign && $data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
            //获取订单号
            $orderId = $data['out_trade_no'];
            //交易流水号
            $serial_umber = $data['transaction_id'];
            //判断是否已经支付
            $status = Db::name('zhuoli_order')->where(['orderid' => $orderId])->value('status');
            if ($status == 1) {
                exit("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
            }
            //获取结果
            $result = $this->_handleResult($orderId, $serial_umber, 'WX');
            if (!$result) {
                exit('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[order err]]></return_msg></xml>');
            }
            exit("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
        }
        exit('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[fail]]></return_msg></xml>');

	}
}